![]() Network-attached disk system
专利摘要:
PURPOSE: A disk system directly attachable to a network is provided to use a disk system by directly attaching to a computer without the addition of a file server, and to a port of a mediocre network such as an Ethernet without separate network equipment. CONSTITUTION: The system comprises a disk, a LAN adapter, a disk controller, a memory, and a state machine. The disk stores data. The LAN adapter receives a disk input/output command from a host via a network and transmits the result of performance to the host. The disk controller performs disk input/output operation by controlling the disk via an internal disk channel. The memory stores the data output from the disk via the disk controller and the data inputted to the disk via the disk controller. The state machine adjusts the phase transfer of the system by managing the LAN adapter and the disk controller. The LAN adapter, the disk controller, the memory, and the state machine are interconnected via a bus. 公开号:KR20020059139A 申请号:KR1020010000086 申请日:2001-01-02 公开日:2002-07-12 发明作者:김한규 申请人:김한규; IPC主号:
专利说明:
Disk-attached disk system directly to the network [11] The present invention relates to a disk system used in a computer, and more particularly to a disk system that can be attached directly to a network. [12] As the use of the Internet increases, the amount of data that needs to be stored has skyrocketed. In particular, there is a high demand for large capacity disks for storing multimedia data. For example, it is not uncommon to have terabytes or more of disk capacity for each server. [13] You can use a tape drive or a CD to store large amounts of data, but it's no match for a hard disk, given its performance and ease of use. However, there is a problem in adding a large capacity hard disk to a server system. [14] Network Attached Storage (NAS) products, which are typically intended to be connected to an Ethernet network, require a predetermined amount of disk capacity expansion through storage system management software that uses the NFS protocol, the CIFS protocol, or both. The basic purpose of the two protocols is to exchange files between two computers. Thus, a client using a NAS for file access has no choice but to access the storage system of the NAS system in a different way than accessing a local disk. [15] NAS is basically a kind of simplified file server that only has the ability to store and access files. Therefore, the disk capacity through the NAS actually increases by adding a file server, which entails many limitations. The NAS's disks are not local to the client, so mounting, moving, and managing them can only be done using the NAS's operating system and software. In addition, since NAS disks must be mounted on the internal bus of the NAS system, there is a fundamental limitation on the number of disks that can be mounted. Since the NAS has a disk under its operating system, a client cannot use any file system other than the provided file system to access the NAS disk. In addition, NAS systems require a separate IP address. In conclusion, NAS systems are more expensive to install and manage per disk system than local disks, and are much more inconvenient to use than local disks. In particular, as the number of NAS systems increases as disk capacity is increased, it is inconvenient to manage a large number of servers. [16] Storage area network (SAN) technologies, such as Fiber Channel technology, can be used to increase storage capacity, but for storage devices attached to the SAN, such as Fiber Channel hubs or Fiber Channel switches, Equipment is required. SAN technology also has its drawbacks, usually requiring a separate file server, usually requiring expensive equipment and a technical staff with knowledge to operate the SAN. Therefore, there is a need for a disk system that can be attached directly to the network without any file server or special equipment and can be used as if it is a local disk. [17] Accordingly, an object of the present invention is to provide a disk system that can be attached directly to a computer without using a separate file server. [18] Another object of the present invention is to provide a disk system that can be directly attached to a port of a general-purpose network such as Ethernet without using a separate network device only for a storage device such as a SAN switch. [19] Yet another object of the present invention is to provide a disk system that can be easily recognized and used as a local disk of a host without using a separate file server, a special device, or an IP address. [20] Another object of the present invention is to provide a disk system that can be easily connected to the host without incurring inconvenience of network or server management. [21] Another object of the present invention is to provide an inexpensive disk system that can be simply plugged in to a network port as many disk systems as necessary to meet the disk capacity demand. [1] 1 is a diagram showing an example of a network environment in which a disk system of the present invention is used. [2] Fig. 2 is a diagram showing the hierarchical structure of the disk driver hierarchy of the present invention incorporated in the Windows 2000 system operating system. [3] 3 is a diagram illustrating an example of a device stack of host 1 of FIG. 1 created to implement the present invention. [4] 4 illustrates the flow of IRPs and SRBs and CDBs when disk input / output commands are passed along the driver layers. [5] 5 illustrates an NDIS driver layer implemented in the present invention. [6] 6 is a hardware configuration diagram of a network-attached disk (NAD) device. [7] 7 is a state transition diagram implemented in the state machine of FIG. [8] <Explanation of symbols for the main parts of the drawings> [9] 1, 2: host [10] Disk: 1.1, 1.2, 2.1, 2.2, 3.1, 3.2 [22] The above-described objects of the present invention provide a network attached disk system including a disk port driver for processing disk operation commands from the host by performing disk input / output operations through the network instead of the internal bus of the host. This can be achieved with an attached disk system. In the present application, a system that can be directly attached to a Microsoft Windows 2000 computer system is presented as an implementation example of the present invention. In particular, a disk system connected to a Windows 2000 host via Ethernet but recognized as a local disk by a Windows 2000 host is described as an example. Of course, such a Windows 2000 computer system is exemplary, and it will be understood by those skilled in the art that the present invention can be applied to a computer system using any other OS. [23] 1 is a diagram showing an example of a network environment in which network attached disk systems of the present invention are attached to a plurality of hosts. [24] In this example, Host 1 and Host 2, both running Windows 2000 systems, are connected to the network. Host 1 uses two disks (1,1) and (1,2) of network attached disk 1 and two disks (2,1) and (2,2) of network attached disk 2 over the network. Host 2 is using two disks (3.1) and disks (3.2) of network attached disk 3. [25] Each disk is considered a local disk by the host it is connected to, and each disk can be dynamically mounted and detached. The configuration of hosts and disks can be changed dynamically, so ease of use and portability are as convenient and free to move as when using local disks. There is no limit to the number of disk systems that can be attached in practice, providing unlimited disk capacity for the host. [26] Thus, the primary object of the present invention is to implement a network attached disk (hereinafter referred to as "NAD") system in which the disk is attached to the network rather than the host's internal bus but is recognized as a local disk by the Windows 2000 host. NAD is recognized by the Windows 2000 system as the local disk itself, so any disk operations that the Windows 2000 system takes to control the local disk, including formatting and partitioning, can be applied to the NAD. . It is this feature that differs from the other solutions provided by NAS technology in that the present invention adds each disk directly at the device level of the host system, while the NAS can be accessed through file system involvement. This is because the space is expanded. In addition, since the NAD is accessed through a network, the disk I / O request, which would have been delivered to a disk controller when using a conventional local disk, is returned to the network interface according to the present invention. [27] FIG. 2 is a diagram illustrating a hierarchical structure of a disk driver hierarchy for implementing the present invention in comparison with a local disk driver hierarchy of a Windows 2000 system. [28] On the left side of FIG. 2 is a typical local disk driver layer of a Windows 2000 system, and includes drivers such as a partition manager, disk class driver, port driver, bus driver, and the like. It has a hierarchical structure. In Windows 2000 systems, the generic term "bus" refers to the hardware that connects the devices electrically. The bus includes any conventional bus, such as a PCI bus, as well as anything to which multiple devices can be connected, such as SCSI adapters, parallel ports, serial ports, and USB hubs. One of the responsibilities of a bus driver is to enumerate the devices attached to the bus and create physical device objects for each device as needed in a Windows 2000 system. Therefore, the bus driver consists of software routines that contain information about a particular bus and functions that assign system resources such as port addresses and IRQ numbers to devices connected to the bus. It is the port driver that actually contains the routines that perform most disk I / O operations. [29] The main feature of the present invention is to implement a bus driver and a port driver in the disk driver layer of the Windows 2000 system to allow the NAD to be recognized as a local disk and to perform local disk operations to the NAD through the network port of the Windows 2000 host. . [30] The right side of Fig. 2 is a driver layer of the above-described functions implemented in the present invention, showing a modified bus driver and a port driver added to the corresponding driver layer of the Windows 2000 system. A modified bus driver for network attached disks (hereafter referred to as "NAD bus driver") is a virtual bus implementation that allows network attached disks to be attached and detached from a Windows 2000 host. do. Modified port drivers for network attached disks (hereafter referred to as "NAD port drivers") provide the ability to attach and detach individual disks from the NAD attached to a Windows 2000 host to and from the Windows 2000 host, and to provide network ports. It delivers disk I / O requests to NADs and implements most of the routines needed to actually perform disk I / O operations. [31] To handle I / O requests, a Windows 2000 system must use the given bus driver and port driver to create a device stack in a manner determined by the operating system. Each device in the Windows 2000 system is represented by device objects in a stack structure. Device objects are specific data structures that Windows 2000 systems create that allow software to manage device hardware. There may be multiple of the above data structures for a single physical hardware. The device object at the bottom of the stack is an object called a physical device object or PDO. Above the PDO of the device object stack is an object called a functional device object or FDO. There may be filter device objects above and below the FDO. Plug and play (PnP) managers on Windows 2000 systems make up a stack of device objects under the command of a device driver. The drivers that make up the stack for a particular piece of hardware play different roles. Function drivers manage the device, and bus drivers connect the device with the computer. [32] FIG. 3 is a diagram illustrating an example of a device stack of Host 1 of FIG. 1 created to implement the present invention. In FIG. 3, filter device objects are omitted for simplicity of explanation. On the left are the layers of SCSI devices listed above the PCI bus, which are created when SCSI disks are connected to the host's PCI bus. First, the PnP Manager is equipped with an internal driver for the virtual root bus that conceptually connects the computer to all the hardware that can't communicate its presence, such as the PCI bus. The root bus driver obtains information from the registry about the PCI bus needed to create a PDO for the PCI bus, which is initialized by the Windows 2000 setup program. [33] After creating a PCI bus PDO, the PnP Manager loads the PCI bus's functional drivers to create a PCI bus FDO. Thereafter, if multiple SCSI devices are attached to the PCI bus as in the example of FIG. 3, the functional driver of the PCI bus enumerates the hardware devices attached to the PCI bus to create a SCSI port PDO. Once the SCSI port PDO is created, the PnP Manager will now load the driver for the devices attached to the SCSI port to create the SCSI port FDO. Similarly, for each SCSI disk, a SCSI disk PDO is created on the SCSI port, and the disk class driver is loaded to create the SCSI disk FDOs in turn. [34] The right side of FIG. 3 is a device stack for NAD devices that can be made by Host 1 of the above example using NAD bus driver and NAD port driver instead of PCI bus driver and SCSI port driver, respectively. Above the route is the NAD bus PDO, which is not a conventional hardware bus like the PCI bus, but a conceptual bus that provides the virtual bus required to implement NAD devices to fit into the device stack structure of a Windows 2000 system. The PnP Manager loads the NAD bus driver to create a NAD bus FDO on top of the NAD bus PDO. [35] Thereafter, a NAD port PDO is generated for each NAD mounted in the network, and a NAD port driver is loaded by the PnP manager to generate a NAD port FDO on each NAD port PDO. The actual NAD disk I / O operation is a NAD port driver. The NAD port driver delivers I / O requests to a specified NAD device through a specific NIC to perform I / O operations and obtains the result from the NAD device to satisfy the I / O request. Play a role. The generated NAD port driver creates a NAD device PDO over that NAD port for each disk attached to the NAD. [36] In the example of Figure 3, since Host 1 has two NADs, two NAD port object stacks have been created. Host 1 also has four NAD device PDOs, two for each NAD port, where disk (1,1) and disk (1.2) are accessed through NAD 1 and disk (2.1) and disk (2.2) Access through NAD 2. For each NAD device PDO, the PnP Manager loads the disk class driver to create the NAD device FDO. Note that only the NAD bus driver and the NAD port driver replace the conventional bus driver and SCSI port driver, respectively, so that you can use a network attached disk instead of a local disk. The disk class drivers and other top drivers in the Windows 2000 system are used unchanged, allowing the Windows 2000 system to recognize network attached disks as local disks. [37] In the Windows 2000 system, an I / O request packet (IRP) is used for a request to perform an operation for driving a device. The IRP is usually passed to the top driver of each device and passed down to the bottom drivers of the device. At each driver level, the driver decides how to handle the IRP. Sometimes some drivers don't do anything about the IRP and simply pass it on to the underlying driver, and sometimes they don't pass the IRP to the underlying driver. Sometimes IRPs are processed and modified and then passed to the driver below. In the case of disk I / O, as shown in the example shown in FIG. 2, the IRP for file I / O is transmitted to the file system driver and then to the lower driver in the order of volume manager, disk class partition, partition manager, and disk class driver. [38] The disk class driver generates a SCSI request block (SRB) as needed and includes it in the IRP and delivers it to the lower driver. SRB is a data structure defined for input and output of SCSI devices in Windows 2000. In the case of an IRP for a conventional disk, the disk class driver passes the newly created IRP to the SCSI port driver, which causes the SCSI port driver to complete the I / O operation. If the IRP is for a NAD device attached to the network, the disk class driver forwards the IRP to the NAD port, allowing the NAD port to complete I / O to the NAD device through the network interface. [39] It is a feature of the Windows 2000 system device stack of FIG. 3 that the IRP is delivered to the disk device, regardless of the type of local disk or network attached disk. If IRP is searched for the device regardless of the device type, a separate disk object stack is created for each disk and IRP is created in the parent driver. This is because IRP can be passed to the port driver. 3 shows separate SCSI disk FDO / PDO pairs and NAD device FDO / PDO pairs attached to separate local disks and network attached disks. [40] In summary, the present invention replaces the conventional bus driver and port driver with the NAD bus driver and the NAD port driver, respectively, as shown in FIG. 2 so that the network attached disk can be recognized and used by the Windows 2000 system as a local disk. [41] All device drivers in the Windows 2000 system consist of functions used to create and remove FDOs for each device, and dispatch functions that process the IRP and pass it from the parent driver to the child driver. Determines which subfunction to call from the major and minor function numbers specified in the IRP. [42] The following is a brief description of the software modules actually implemented in the NAD bus driver and the NAD port driver of the present invention, which realizes a network attached disk system that can be used in the Windows 2000 system. [43] (1) NAD bus driver [44] The NAD bus driver is a collection of software modules for implementing a virtual bus to which NADs are attached. NAD ports are the realization of NADs attached to a network. The functions of the NAD bus driver are basically the same as those of the typical PCI bus driver in Windows 2000. The NAD bus driver identifies NADs connected to the network and creates a NAD port PDO for each NAD. It also performs the functions of creating, starting, terminating and removing NAD ports. [45] The difference between the NAD bus driver and the conventional PCI bus driver is that the NAD bus driver is a virtual bus driver for NAD devices that are not physically attached to the host system bus but are connected to the host through the network. Unlike the Windows 2000 system, which detects the insertion or removal of hardware devices on the hardware bus by hardware interrupts, the NAD bus driver is implemented to create a kernel thread for attaching or removing NAD ports on the NAD bus. The kernel thread created by the NAD bus driver starts working when an IRP with IRP_MJ_PNP as the main function number and IRP_MN_START_DEVICE as the minor function number is passed from the PnP manager to the NAD bus FDO and terminates when the NAD bus FDO is removed. When a new NAD is detected, the thread creates a new NAD port PDO for the newly detected NAD and includes the newly created NAD port PDO in its NAD port PDO list. The thread then calls the PnP manager to let the system recognize the newly created NAD port PDO. Desorption of a NAD is also detected by a thread, which checks its NAD port PDO list and finds that a particular NAD has been removed by discovering a NAD port PDO that was previously created but does not have that NAD as the NAD is detached. Because. When it finds that NAD has been removed from the host, the thread removes the NAD port PDO from its list of NAD port PDOs and calls the PnP Manager to remove the NAD port from the Windows 2000 system. [46] The software routines implemented in the NAD bus driver of the present invention can be classified into five types. The following table summarizes the main routines implemented in the NAD bus driver with a brief description. [47] Basic function DriverEntry ()-Run when the driver is first loaded-Register the NAD bus driver's special functions-Initialize the driver's variables NADBusUnload ()Reclaiming resources occupied by a driver when removing it NADBusAddDevice ()Create a NAD bus FDO Initialize the values of the NAD bus FDO [48] Dispatch functions NADBusCreate ()-IRP_MJ_CREATE handles IRP NADBusClose ()-Handle IRP_MJ_CLOSE IRP NADBusPnp ()-Handle IRP_MJ_PNP IRP-decide whether to send IRP to NAD bus FDO or NAD port PDO and call NADFDOPnP () or NADPDOPnp () accordingly NADBusPower ()-Handle IRP_MJ_POWER IRP [49] NAD Bus FDO Related Functions NADBusFDOPnp ()When IRP_MJ_PNP is passed to the NAD bus FDO, it handles various subfunctions according to the minor function number passed along with the call (see below). IRP_MN_START_DEVICE-Transmits the NAD bus FDO to the start state-Calls NDBusStartFDO () IRP_MN_QUERY_STOP_DEVICE-Transition the calling-NAD bus FDO to stop pending state to query whether it can terminate the NAD bus FDO IRP_MN_CANCEL_STOP_DEVICE-IRP_MN_QUERY_STOP_DEVICE canceled IRP_MN_STOP_DEVICE-Terminates the NAD bus FDO-transitions the NAD bus FDO to the exit state-blocks the NDBusHW () thread IRP_MN_QUERY_REMOVE_DEVICECalled to inquire about whether the NAD bus FDO can be removed from the system IRP_MN_CANCEL_REMOVE_DEVICE-IRP_ MN_QUERY_REMOVE_DEVICE canceled IRP_MN_SURPRISE_REMOVAL-Call when NAS bus FDO is abnormally removed IRP_MN_REMOVE_DEVICECalled when NAD bus FDO is removed normally [50] IRP_MN_QUERY_DEVICE_RELATIONS-NAD port PDO list to PnP Manager NADBusStartFdo ()Resource allocation to the NAD bus FDO NADBusRemoveFdo ()-Recover the resources occupied by the NAD bus FDO -remove the NDBusHW () thread NADBusGetDeviceCapabilities ()Deliver DeviceCapability data structure to PnP manager [51] NAD Port PDO Related Functions NADPortPDOPnp ()Process subfunctions related to PnP Call when IRP_MJ_PNP is passed to NAD port PDOUnit functions: - IRP_MN_START_DEVICE- IRP_MN_QUERY_STOP_DEVICE- IRP_MN_CANCEL_STOP_DEVICE- IRP_MN_STOP_DEVICE- IRP_MN_QUERY_REMOVE_DEVICE- IRP_MN_CANCEL_REMOVE_DEVICE- IRP_MN_SURPRISE_REMOVAL- IRP_MN_REMOVE_DEVICE- IRP_MN_QUERY_CAPABILITIES- IRP_MN_QUERY_ID- IRP_MN_QUERY_DEVICE_RELATIONS- IRP_MN_QUERY_DEVICE_TEXT- IRP_MN_QUERY_RESOURCES_REQUIREMENTS- IRP_MN_QUERY_RESOURCE NADPortPDOQueryDeviceCaps ()Returns the DEVICE_CAPABILITIES data structure of the NAD port. NADPortPDOQueryDeviceId ()Returns the device ID, instance ID, and hardware ID of the NAS port. NADPortPDOQueryDeviceText ()Return the location and description of the NAD port NADPortPDOQueryDeviceRelations ()Return the target device relation value [52] NADPortInitializePdo ()-Initialize NAD port PDO value-Called when NAD port attached to NAD bus is found NADPortDestroyPdo ()-NAD port remove PDO and recover resources [53] Functions for NAD Port Detection NADBusHW ()-NAD ports Kernel thread routines for detecting NAD ports attached to the NAD bus-Periodically detects the presence of NAD devices-When a new NAD port is mounted, it creates a NAD port PDO and calls NADPortInitializePdo ()-The existing NAD device When detected is removed, call NADPortDestroyPdo () to remove the NAD port PDO [54] (2) NAD port driver [55] A port driver is a subordinate driver of a class driver corresponding to a device control request defined by a system transferred from a corresponding class driver or a device input / output control request defined for each driver. [56] The NAD port driver can perform basic functions that initialize the driver and generate a NAD port FDO, and a special function that handles IRPs from the disk class driver. The IRP from the disk class driver can contain a SCSI request block (SRB), which specifies the actual I / O command to be applied to the SCSI device. [57] The following table briefly describes the basic functions and some special functions that play basically the same role as the NAD bus driver described above. The following table describes in detail the functions implemented in the NAD port driver that control the NAD hardware and handle the SRB. [58] [59] In Windows 2000, device I / O control commands are included in the IRP as device I / O control numbers, and device I / O control functions are implemented in the port driver to process commands corresponding to the device I / O control numbers. . [60] In addition to the regular Windows 2000 device I / O control functions, the NAD port driver implements additional device I / O control functions to allow network attached disks to be added and removed dynamically without stopping the Windows 2000 system. In the case of a typical local disk, the local disk is physically connected to the hardware bus, so mounting or detaching the local disk is detected directly at system boot time by the Windows 2000 system. Therefore, the creation of a disk PDO for a local disk is basically triggered by a hardware interrupt at system boot. Thus, since there is no need to add or remove a disk during system operation, a typical port driver does not need a function to perform the function of adding or removing a disk during system operation. [61] However, in NAD systems, the attachment or removal of network attached disks can occur while using the Windows 2000 system, and therefore requires a device to create or remove disk PDOs for newly mounted / removed disks. [62] The device input / output control functions of the present invention handle the dynamic addition and removal of network attached disks as follows. A NAD device, that is, a network-attached disk, is newly added to the network to create a NAD port PDO, and the resulting NAD port FDO generates a NAD device PDO for each disk attached to the newly attached NAD to give the system a disk device. The PnP manager to notify the system that it is a disk device. When the NAD device is received from the NAD bus FDO through the device control IRP, the device control IRP for removing the NAD device PDO for each disk device attached to the NAD can be processed to remove the NAD device. [63] The special functions for handling device I / O control IRPs are listed in the following table. [64] [65] In Windows 2000, the disk class driver sends an IRP, including SRB, to the SCSI port driver. The SRB is a data structure that contains information about the requested I / O and the command descriptor block (CDB), a SCSI-2 standard command. When the IRP is passed from the disk class driver, the SCSI driver passes the CDB extracted from the SRB to the SCSI host adapter to allow the hardware device to complete the actual I / O. [66] The left side of Figure 4 shows the flow of IRP, SRB and CDB when delivering IRP to a SCSI disk connected to a conventional bus such as the PCI bus. Disk I / O commands in the normal case are sent to the host controller's disk controller using the SRB data structure. However, in the NAD system of the present invention, the disk I / O command is transmitted to the NIC of the host. 4 shows the flow of IRP and SRB and CDB (or other type of input / output commands) in the NAD system. [67] In the present invention, various types of disks including SCSI and IDE are supported. If the NAD device consists only of SCSI disks, the CDB is passed directly to the host NIC, allowing network attached SCSI disks to perform the required disk I / O over the network. [68] If your NAD device is composed of non-SCSI disks, such as an IDE, you should convert the CDB into commands that a particular device can handle. In such cases, the CDB conversion may be performed by the NAD port driver or by a network attached disk device. If the translation is done on a network attached disk, the Windows 2000 host simply passes the CDB to the hostNIC as if it were delivering the CDB to a SCSI disk. If the translation is to be performed in the NAD port driver, the function of the NAD port driver must translate the CDB into a disk I / O instruction of a specific hardware disk type. [69] The NAD system of the present invention supports both cases, and whether the CDB or the separate command according to the hardware type is determined at the time of mounting a specific network attached disk. In the following, some of the special functions for processing the SRB including the required CDB operation are shown in a table to show how the SRB and CDB are handled in the present invention. [70] [71] (3) communication between host and network attached disk [72] As described above, since disk I / O of the NAD system is generated through the network, disk I / O commands should be delivered to the host NIC instead of the host adapter for the local disk. Therefore, in the present invention, all NAD port driver functions that deliver I / O commands to the network attached disk are implemented to send commands to the NDIS protocol driver layer so that I / O commands are transmitted through the network. The network driver interface specification (NDIS) is a set of specifications that specifies the network interface driver used in Windows 2000 systems. [73] 5 is an NDIS driver layer defined in a Windows 2000 system. When a disk class driver receives an IRP containing an SRB or an I / O instruction for a specific disk I / O operation, the NAD port driver sends a new IRP containing the CDB to the NDIS protocol driver. The protocol driver then sends the SCSI-2 standard I / O command CDB to the network attached disk and receives the result of the I / O operation from the network attached disk. In this case, if the host computer needs to send an I / O command of specific hardware other than the CDB, note that an IRP containing a specific hardware I / O command is sent to the protocol driver instead of the CDB as shown in FIG. 4. [74] NDIS provides network manufacturers with transport transparency because all drivers that require communication over the network must make calls to the NDIS interface to access the network. Therefore, as the communication between the NAD device and the host of the present invention is performed in this manner, the NAD port driver does not need to perform any additional work for the communication by providing the NDIS protocol driver. [75] The communication protocol implemented in the NDIS protocol driver of FIG. 5 may adopt a standard protocol or a non-standard protocol. Since a standard protocol such as IP generates unnecessary overhead in the NAD system of the present invention, it is preferable to use a non-standard communication protocol in order to improve performance. Other benefits of nonstandard protocols include security benefits. In the present invention, a non-standard communication protocol using an Ethernet frame is implemented in the NDIS protocol driver to process NAD input / output commands between a Windows 2000 host and a network attached disk through a network. However, the non-standard communication protocol implemented in the present invention is merely an example adopted for performance and convenience of implementation, and the implementation of the NAD system of the present invention is independent of the adoption of the protocol. By using IP as a communication protocol, the NAD of the present invention can be accessed and used as a local disk of a remote NAD anywhere in the world through the Internet. [76] (4) NAD device [77] 6 is a configuration diagram of the NAD apparatus of the present invention. The NAD device consists of a LAN adapter, a disk controller, and a state machine. The LAN adapter is a module that receives disk I / O commands from the host computer through the network and transmits the results of the execution of the commands. The disk controller is a module that performs disk input / output operations by controlling disks through an internal disk channel. A state machine that can be implemented using a typical CPU and memory is a module that manages LAN adapters and disk controllers to handle state transitions across the entire NAD device. [78] As shown in Figure 6, the LAN adapter consists of a bus interface, a receive buffer manager, a transmit buffer manager, a media access control controller (MAC controller), a physical layer interface, and registers. It is. The bus interface is a logic circuit that allows data to pass between the bus and the receive / transmit buffers and registers. State machines and receive / transmit buffer managers access registers and memory through the bus interface. The receive buffer manager is responsible for moving data stored by the MAC controller from its buffer to memory in response to a command from the state machine. The transmit buffer manager moves data from memory to the buffer according to the instructions of the state machine and allows the media access controller to transmit over the network. The registers store the information that the state machine or transmit / receive buffer manager needs to coordinate the operation. The media access controller transmits data to the physical layer so that the physical layer can transmit the data to the host computer. When the physical layer receives a packet containing a disk input / output request from the host computer, the packet is transmitted to the media access controller, and the media access layer extracts necessary data from the transmitted packet and ultimately delivers the data to the reception buffer manager. [79] The disk controller of FIG. 6 consists of a bus interface, a buffer manager, a channel controller and registers. The role of the bus interface logic circuit is similar to that of the LAN adapter. The state machine loads instructions into registers to cause the buffer manager to execute disk I / O commands, which the buffer manager obtains from the registers for the disk sector number and the channel number. The buffer manager commands the channel controller to allow data to be transferred between the memory and the disk channel as a result of the disk access command. The channel controller is responsible for transferring data directly from memory to disk and vice versa. [80] The state machine is the key to managing the entire NAD device based on the state of the NAD device. 7 is a simplified state transition diagram of a state machine. In the 'init' state, the state machine initializes all hardware elements of the NAD device and allocates memory to the LAN adapter and disk controller. When the initialization is complete, the state transitions to the 'wait_command' state. In the 'wait_command' state, I / O commands are sent from the host computer through the network. When a disk I / O command is sent from the host, the state transitions to 'disk_access' state. In the 'disk_access' state, disk I / O operations are properly performed through the disk control module. When the disk I / O operation is completed, the state transitions to 'transmit_reply' state. In the 'transmit_reply' state, the state machine sends the result of the disk I / O command operation to the host computer via the LAN adapter. When the transfer is completed, the state machine transitions to the 'wait_command' state and repeats the above disk I / O operation to perform the NAD device. [81] (5) Other implementation method of NAD system [82] The above-described method replaces the port driver and the bus driver of the Windows 2000 disk driver system with the NAD port driver and the NAD bus driver, respectively. [83] Port drivers in Windows 2000 systems are divided into parts related to hardware access and those not, and the former is called a miniport driver and the latter is called a SCSI port driver. The NAD port driver replaces the port driver of the existing Windows 2000 system. Alternatively, the NAD port driver can be implemented by using an existing SCSI port driver and creating a NAD miniport driver. NAD miniport drivers are software modules that send disk commands to NADs on the network and receive the results. In other words, it sends CDB or other type of I / O command to NAD on the network through NDIS and receives the result from NAD through NDIS. This method has the advantage that the existing SCSI port driver can be used as it is. [84] As another method, a unit mounted on the virtual NAD bus may be a NIC existing in a host, instead of the above-described NAD. That is, in the above implementation, a separate NAD port is generated for each NAD, whereas one NAD port is generated for each NIC of the host. In this way, each NIC is a NAD port, which manages the attachment and detachment of the NAD. [85] In addition, the NAD system of the present invention may be implemented in the form of a media changeable storage device. The medium exchange storage device includes two parts, which are physically separated, that is, a medium storing data and a driver device performing input / output for the medium. The medium may or may not be loaded or the medium exchange storage device may be registered with the host and the medium, such as a diskette, may be inserted into the driver device as needed. [86] NAD can be dynamically plugged into or removed from the network, enabling virtual drivers that use NAD as a medium to be implemented in the form of media-switched storage. The Windows 2000 system provides a changer class driver model for implementing media exchange storage. Examples of exchange class drivers are floppy disk drivers and CD-ROM drivers. To implement a medium-switched NAD system, the class driver of the NAD system must be implemented according to the Windows 2000 exchange class driver model. The lower two drivers, the NAD port driver and the NAD bus driver, basically use the NAD driver implemented for the aforementioned NAD system. [87] However, the NAD driver, implemented as a Windows 2000 switch class driver, cannot support all operations on network attached disks. For example, a medium-switched NAD system cannot partition or share a NAD device because it is registered as a medium-switching device rather than a local disk. That is, only operations that can be applied to a floppy disk or CD-ROM can be applied to a medium switched NAD disk. [88] Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention described in the claims below. It will be appreciated. [89] The NAD system of the present invention has the following advantages over NAS or SAN. [90] Unlike NAS, which provides file storage through a separate file server, the NAS is attached to the host as a local disk. Unlike SAN products, the NAD system of the present invention simply plugs directly into a network port without adding a special switch device or network device. Therefore, the NAD system provides better user convenience, system flexibility, high scalability, economy and high performance. [91] In particular, all disk operations that apply to disks including operations such as formatting, partitioning, sharing, and mounting may be applied to the NAD device. In contrast, the disk space available through the NAS cannot be formatted or partitioned directly on the host computer, nor can it be mounted under any other directory across file system boundaries. [92] In addition, the NAD device is used as a local disk, thus providing better management and convenience of use. In the case of NAS, all changes in disk addition, removal, and configuration have to be inconveniently managed and used through the operating system of the NAS by using a separate software provided by a person or NAS. In the case of NAD systems, mounting and detaching are instantaneous by simply plugging or unplugging devices into ports on the network. Mounting and detaching a NAD system is easier than installing or removing a local disk on an existing internal system bus because it eliminates the hassle of opening and removing the host computer's case. [93] Moreover, the NAD system is not limited to increasing disk capacity. There is no limit to the number of NAD devices that can be attached to the network. On the other hand, since the number of disks that can be mounted inside the NAS server is very limited, a large number of NAS is required for the expansion of large capacity, which is not an economic solution and is very inconvenient for use and management. [94] In addition, NAS is inherently cheaper than NAS or SAN devices because it does not employ a separate file server and does not use any special devices.
权利要求:
Claims (13) [1" claim-type="Currently amended] In a network attached disk system capable of performing disk input and output operations over the network instead of the internal bus of the host, A disk for storing data, A LAN adapter for receiving a disk input / output command from the host through the network and transmitting a result of performing the command to the host; A disk controller which performs disk input / output operations by controlling the disk through an internal disk channel; A memory for storing data output from the disk through the disk controller and data input to the disk through the disk controller; A state machine that manages the LAN adapter and the disk controller to coordinate state transitions of the network attached disk system Including but not limited to: And said LAN adapter, said disk controller, said memory and said state machine are connected via a bus. [2" claim-type="Currently amended] The LAN adapter of claim 1, wherein the LAN adapter is A bus interface connected to the bus, A physical layer interface for receiving a packet containing a disk input / output request from the host; A media access control controller (MAC) for receiving a packet containing a disk input / output request from the host through the physical layer and transmitting data to the physical layer to enable the physical layer to transmit data to the host. controller), A receive buffer manager having a receive buffer and transferring data stored by the medium access controller from the receive buffer to the memory according to a command of the state machine; A transmit buffer manager having a transmit buffer, wherein said transmit buffer manager transfers said data from said memory to said transmit buffer in response to a command of said state machine and enables said medium access controller to transmit over said network; A register that stores information needed by the state machine and the transmit and receive buffer managers to coordinate operations Including but not limited to: The bus interface allows the data to be exchanged between the bus and the receive / transmit buffers and registers, the state machine and receive / transmit buffer managers access registers and memory via the bus interface, and the physical layer When a packet containing a disk input / output request is received from the host, the packet is transmitted to the media access controller so that a media access layer extracts necessary data from the delivered packet and delivers the necessary data to the reception buffer manager. Disk system. [3" claim-type="Currently amended] The disk controller of claim 1, wherein the disk controller A bus interface connected to the bus, A disk channel connected to the disk, A channel controller controlling the transfer of said data from said memory to said disk or from said disk to said memory; A register for storing a disk sector number and a channel number for executing a disk access command; A buffer manager for obtaining the disk sector number and the channel number from the register and instructing the channel controller to allow data to be transferred between the memory and the disk channel as a result of the disk access command. Including but not limited to: And the state machine causes the buffer manager to execute a disk input / output command by loading an instruction into the register. [4" claim-type="Currently amended] The system of claim 1, wherein the state machine is A first state of initializing all hardware elements of the network attached disk system and allocating the memory to the LAN adapter and the disk controller; A second state of waiting for the input / output command transmitted from the host through the network after completing the initialization operation; A third state of performing a disk input / output operation through a disk control module after the disk input / output command is transmitted from the host; A fourth state of transmitting the operation result of the disk input / output command to the host through the LAN adapter after completing the disk input / output operation. Network attached disk system comprising a. [5" claim-type="Currently amended] A network attached disk system capable of performing disk input / output operations through the network by directly connecting to a network port controlled by the host instead of an internal bus of the host, A first virtual bus driver for recognizing whether the network attached disk existing on the network connected to the network port is connected to the host to recognize the network attached disk; The disk attached to the network attached disk through the network port is recognized as a local disk, and the disk input and output requests to the disk to implement the routines necessary to perform the disk input and output operations, disk access command (disc access command) And a second virtual port driver by interconverting the network access command to cause the host to recognize the network access command as the disk access command. Network attached disk system comprising a. [6" claim-type="Currently amended] The network of claim 5, wherein the host comprises a network interface card for connecting to the network attached disk, The first virtual bus driver is implemented to create a kernel thread for detecting the presence of a network access disk on a network to which the network interface card is connected, wherein the kernel thread is When a new network attached disk is detected, creating a network attached disk port physical device object (NAD port PDO) for the detected network attached disk; Including the generated NAD port PDO in its own NAD port PDO list; Invoking the Plug and Play (PnP) manager of the host to cause the system to recognize the generated NAD port PDO. Network attached disk system, characterized in that for performing. [7" claim-type="Currently amended] 6. The device of claim 5, wherein the second virtual port driver initializes a driver and creates a network attached disk port functional device object (NAD port FDO); Creating a network attached physical device object (NAD device PDO) for each disk mounted on the network attached disk, Recognizing the network attached physical device object (NAD device PDO) as a local disk; A network attached disk system performing a special function function for processing an input / output request packet transmitted from a disk class. [8" claim-type="Currently amended] The NAD bus FDO generates a NAD port PDO for the newly attached network attached disk when a device control input / output request packet indicating that the network attached disk is newly added to the network is delivered to the NAD bus FDO. And cause the system to recognize the network attached disk system. [9" claim-type="Currently amended] 8. The method of claim 7, wherein when the NAD port FDO of the network attached disk is generated and operated, generating a NAD device PDO for the disk mounted on the network attached disk to cause the system to recognize the disk as a local disk. Network attached disk system, characterized in that. [10" claim-type="Currently amended] 9. A network attached disk system according to any one of claims 5 to 8, wherein said network is Ethernet. [11" claim-type="Currently amended] 9. A network attached disk system as claimed in any of claims 5 to 8, wherein said host runs on Microsoft's Windows operating system. [12" claim-type="Currently amended] 9. A network attached disk system as claimed in any of claims 5 to 8, wherein said host runs on Microsoft's Windows 2000 operating system. [13" claim-type="Currently amended] 9. A network attached disk system according to any one of claims 5 to 8, wherein said host runs on a Unix-like operating system, such as Linux and Solaris operating systems.
类似技术:
公开号 | 公开日 | 专利标题 US10552208B2|2020-02-04|Migrating a virtual machine that owns a resource such as a hardware device US9904471B2|2018-02-27|System software interfaces for space-optimized block devices US10747570B2|2020-08-18|Architecture for implementing a virtualization environment and appliance US9275083B2|2016-03-01|System and method for managing data policies on application objects US9448728B2|2016-09-20|Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers JP2017512350A|2017-05-18|Method and system for centralized networking and storage US8397240B2|2013-03-12|Method to dynamically provision additional computer resources to handle peak database workloads US9389895B2|2016-07-12|Virtual storage target offload techniques US9052825B2|2015-06-09|System software interfaces for space-optimized block devices US7454795B2|2008-11-18|Disk control unit US7287116B2|2007-10-23|Storage virtualization system and method having a virtualization switch US7194662B2|2007-03-20|Method, apparatus and program storage device for providing data path optimization US6295575B1|2001-09-25|Configuring vectors of logical storage units for data storage partitioning and sharing US6640278B1|2003-10-28|Method for configuration and management of storage resources in a storage network EP1131933B1|2004-12-15|Systems and methods for network and i/o device drivers AU2007248886B2|2011-11-03|Converting machines to virtual machines JP5784482B2|2015-09-24|Information processing apparatus and communication control method US7546386B2|2009-06-09|Method for virtual resource initialization on a physical adapter that supports virtual resources US8205043B2|2012-06-19|Single nodename cluster system for fibre channel KR100644011B1|2006-11-13|Storage domain management system US7428584B2|2008-09-23|Method for managing a network including a storage system US7209967B2|2007-04-24|Dynamic load balancing of a storage system US8103826B2|2012-01-24|Volume management for network-type storage devices JP5054531B2|2012-10-24|System and method for requesting return of unused space from provisional data container US6594698B1|2003-07-15|Protocol for dynamic binding of shared resources
同族专利:
公开号 | 公开日 WO2002054266A1|2002-07-11| EP1348164A4|2007-12-05| KR100372915B1|2003-02-19| JP2004527817A|2004-09-09| EP1348164A1|2003-10-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2001-01-02|Application filed by 김한규 2001-01-02|Priority to KR20010000086A 2002-07-12|Publication of KR20020059139A 2003-02-19|Application granted 2003-02-19|Publication of KR100372915B1
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 KR20010000086A|KR100372915B1|2001-01-02|2001-01-02|Network-attached disk system| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|